home *** CD-ROM | disk | FTP | other *** search
/ The Fatted Calf / The Fatted Calf.iso / Applications / Communication / NewsBase / Source / common.subproj / errdebug.h < prev    next >
Text File  |  1993-01-12  |  1KB  |  54 lines

  1. #ifdef DEBUG
  2.  
  3. #import <stdio.h>
  4. extern int     ck_level;
  5.  
  6. #define STRDBG(string) STRNDBG(string, sizeof(string))
  7.  
  8. #ifdef __OBJC__
  9.  
  10. #import <appkit/Application.h>
  11.  
  12. int    ck_dbg(int, id, SEL);
  13. #define DBG(flag,dbgfunc) \
  14.     {if(ck_dbg(flag,self,_cmd)) {\
  15.         fprintf(stderr,"DBG%d: \"%s\" %s (%d)\n",flag,\
  16.         (char *)[self name],(char *)sel_getName(_cmd),(int)_cmd);\
  17.         fprintf(stderr,"DBG%d: ",flag);dbgfunc;\
  18.         fprintf(stderr,"\n");\
  19.     }}
  20.  
  21. #define STRNDBG(string, len) \
  22.     {if(strlen(string) + 1 > len) {\
  23.         fprintf(stderr,"DBG: \"%s\" %s (%d) string overflow\n",\
  24.         (char *)[self name],(char *)sel_getName(_cmd),(int)_cmd);\
  25.         [NXApp terminate:self];\
  26.     }}
  27.  
  28. #else __OBJC__
  29.  
  30. #define DBG(flag,dbgfunc) \
  31.     {if(flag<=ck_level) {\
  32.             fprintf(stderr,"DBG%d: file:%s line:%d\n",flag,\
  33.         __FILE__, __LINE__);\
  34.         fprintf(stderr,"DBG%d: ",flag);dbgfunc;\
  35.         fprintf(stderr,"\n");\
  36.     }}
  37.         
  38. #define STRNDBG(string, len) \
  39.     {if(strlen(string) + 1 > len) {\
  40.             fprintf(stderr,"DBG: file:%s line:%d string overflow\n",\
  41.         __FILE__, __LINE__);\
  42.         exit(-1);\
  43.     }}
  44.  
  45. #endif __OBJ__
  46.  
  47. #else DEBUG
  48.  
  49. #define DBG(x,x)    
  50. #define STRNDBG(x,x)    
  51. #define STRDBG(x)    
  52.  
  53. #endif DEBUG
  54.